home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Technology Seed / Jan. '98 ATS.toast / QuickTime™ 3.0b11 / QTPublicInterfaces / CIncludes / StringCompare.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-12  |  7.9 KB  |  299 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        StringCompare.h
  3.  
  4.      Contains:    Public interfaces for String Comparison and related operations
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 3.0 Beta
  8.  
  9.      Copyright:    © 1985-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __STRINGCOMPARE__
  19. #define __STRINGCOMPARE__
  20.  
  21. #ifndef __MACTYPES__
  22. #include <MacTypes.h>
  23. #endif
  24. #ifndef __TEXTCOMMON__
  25. #include <TextCommon.h>
  26. #endif
  27. #ifndef __SCRIPT__
  28. #include <Script.h>
  29. #endif
  30.  
  31.  
  32.  
  33. #if PRAGMA_ONCE
  34. #pragma once
  35. #endif
  36.  
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40.  
  41. #if PRAGMA_IMPORT
  42. #pragma import on
  43. #endif
  44.  
  45. #if PRAGMA_STRUCT_ALIGN
  46.     #pragma options align=mac68k
  47. #elif PRAGMA_STRUCT_PACKPUSH
  48.     #pragma pack(push, 2)
  49. #elif PRAGMA_STRUCT_PACK
  50.     #pragma pack(2)
  51. #endif
  52.  
  53. /*
  54.  
  55.     Here are the current System 7 routine names and the translations to the older forms.
  56.     Please use the newer forms in all new code and migrate the older names out of existing
  57.     code as maintenance permits.
  58.     
  59.     NEW NAME                    OLD NAME                    OBSOLETE FORM (no handle)
  60.     
  61.     CompareString (Str255)        IUCompPString (hp only)        IUCompString (hp only)
  62.     CompareText (ptr/len)        IUMagPString                IUMagString
  63.     IdenticalString (Str255)    IUEqualPString (hp only)    IUEqualString  (hp only)
  64.     IdenticalText (ptr/len)        IUMagIDPString                IUMagIDString
  65.     LanguageOrder                IULangOrder
  66.     ScriptOrder                    IUScriptOrder
  67.     StringOrder (Str255)        IUStringOrder (hp only)
  68.     TextOrder (ptr/len)            IUTextOrder
  69.  
  70.     RelString
  71.     CmpString (a only)                    
  72.     EqualString (hp only)
  73.     
  74.     ReplaceText
  75.  
  76. */
  77.  
  78.  
  79. enum {
  80.                                                                 /* Special language code values for Language Order*/
  81.     systemCurLang                = -2,                            /* current (itlbLang) lang for system script*/
  82.     systemDefLang                = -3,                            /* default (table) lang for system script*/
  83.     currentCurLang                = -4,                            /* current (itlbLang) lang for current script*/
  84.     currentDefLang                = -5,                            /* default lang for current script*/
  85.     scriptCurLang                = -6,                            /* current (itlbLang) lang for specified script*/
  86.     scriptDefLang                = -7                            /* default language for a specified script*/
  87. };
  88.  
  89. /* obsolete names*/
  90.  
  91. enum {
  92.     iuSystemCurLang                = -2,
  93.     iuSystemDefLang                = -3,
  94.     iuCurrentCurLang            = -4,
  95.     iuCurrentDefLang            = -5,
  96.     iuScriptCurLang                = -6,
  97.     iuScriptDefLang                = -7
  98. };
  99.  
  100.  
  101. /*
  102.    The following functions are old names, but are required for System 7 PowerPC builds
  103.    because InterfaceLib exports these names, instead of the new ones.
  104. */
  105.  
  106. EXTERN_API( short )
  107. IUMagPString                    (const void *            aPtr,
  108.                                  const void *            bPtr,
  109.                                  short                     aLen,
  110.                                  short                     bLen,
  111.                                  Handle                 itl2Handle)                            THREEWORDINLINE(0x3F3C, 0x001A, 0xA9ED);
  112.  
  113. EXTERN_API( short )
  114. IUMagIDPString                    (const void *            aPtr,
  115.                                  const void *            bPtr,
  116.                                  short                     aLen,
  117.                                  short                     bLen,
  118.                                  Handle                 itl2Handle)                            THREEWORDINLINE(0x3F3C, 0x001C, 0xA9ED);
  119.  
  120. EXTERN_API( short )
  121. IUTextOrder                        (const void *            aPtr,
  122.                                  const void *            bPtr,
  123.                                  short                     aLen,
  124.                                  short                     bLen,
  125.                                  ScriptCode             aScript,
  126.                                  ScriptCode             bScript,
  127.                                  LangCode                 aLang,
  128.                                  LangCode                 bLang)                                THREEWORDINLINE(0x3F3C, 0x0022, 0xA9ED);
  129.  
  130. EXTERN_API( short )
  131. IULangOrder                        (LangCode                 language1,
  132.                                  LangCode                 language2)                            THREEWORDINLINE(0x3F3C, 0x0020, 0xA9ED);
  133.  
  134. EXTERN_API( short )
  135. IUScriptOrder                    (ScriptCode             script1,
  136.                                  ScriptCode             script2)                            THREEWORDINLINE(0x3F3C, 0x001E, 0xA9ED);
  137.  
  138. EXTERN_API( short )
  139. IUCompPString                    (ConstStr255Param         aStr,
  140.                                  ConstStr255Param         bStr,
  141.                                  Handle                 itl2Handle);
  142.  
  143. EXTERN_API( short )
  144. IUEqualPString                    (ConstStr255Param         aStr,
  145.                                  ConstStr255Param         bStr,
  146.                                  Handle                 itl2Handle);
  147.  
  148. EXTERN_API( short )
  149. IUStringOrder                    (ConstStr255Param         aStr,
  150.                                  ConstStr255Param         bStr,
  151.                                  ScriptCode             aScript,
  152.                                  ScriptCode             bScript,
  153.                                  LangCode                 aLang,
  154.                                  LangCode                 bLang);
  155.  
  156. /*
  157.    The following new function name IS exported by InterfaceLib and works on both 68k and
  158.    System 7 PowerPC.
  159. */
  160. EXTERN_API( short )
  161. ScriptOrder                        (ScriptCode             script1,
  162.                                  ScriptCode             script2)                            THREEWORDINLINE(0x3F3C, 0x001E, 0xA9ED);
  163.  
  164. /* For C the other new names are mapped to the old names using #define.*/
  165. #if TARGET_OS_MAC
  166. #define CompareString MacCompareString
  167. #endif
  168. #define MacCompareString(aStr, bStr, itl2Handle) \
  169.          IUCompPString(aStr, bStr, itl2Handle)
  170. #define CompareText(aPtr, bPtr, aLen, bLen, itl2Handle) \
  171.          IUMagPString(aPtr, bPtr, aLen, bLen, itl2Handle)
  172. #define IdenticalString(aStr, bStr, itl2Handle) \
  173.          IUEqualPString(aStr, bStr, itl2Handle)
  174. #define IdenticalText(aPtr, bPtr, aLen, bLen, itl2Handle) \
  175.          IUMagIDPString(aPtr, bPtr, aLen, bLen, itl2Handle)
  176. #define StringOrder(aStr, bStr, aScript, bScript, aLang, bLang) \
  177.          IUStringOrder(aStr, bStr, aScript, bScript, aLang, bLang)
  178. #define TextOrder(aPtr, bPtr, aLen, bLen, aScript, bScript, aLang, bLang) \
  179.          IUTextOrder(aPtr, bPtr, aLen, bLen, aScript, bScript, aLang, bLang)
  180. #define LanguageOrder(language1, language2) \
  181.          IULangOrder(language1, language2)
  182. /* C glue*/
  183.  
  184. #if CGLUESUPPORTED
  185. #if OLDROUTINENAMES
  186. EXTERN_API_C( short )
  187. iucomppstring                    (const char *            aStr,
  188.                                  const char *            bStr,
  189.                                  Handle                 intlHandle);
  190.  
  191. EXTERN_API_C( short )
  192. iuequalpstring                    (const char *            aStr,
  193.                                  const char *            bStr,
  194.                                  Handle                 intlHandle);
  195.  
  196. EXTERN_API_C( short )
  197. iustringorder                    (const char *            aStr,
  198.                                  const char *            bStr,
  199.                                  ScriptCode             aScript,
  200.                                  ScriptCode             bScript,
  201.                                  LangCode                 aLang,
  202.                                  LangCode                 bLang);
  203.  
  204. #endif  /* OLDROUTINENAMES */
  205.  
  206. #endif  /* CGLUESUPPORTED */
  207.  
  208. /*
  209.    The following new function name IS exported by InterfaceLib and works on both 68k and
  210.    System 7 PowerPC.
  211. */
  212. EXTERN_API( short )
  213. MacReplaceText                    (Handle                 baseText,
  214.                                  Handle                 substitutionText,
  215.                                  Str15                     key)                                FOURWORDINLINE(0x2F3C, 0x820C, 0xFFDC, 0xA8B5);
  216.  
  217. EXTERN_API( short )
  218. IUMagString                        (const void *            aPtr,
  219.                                  const void *            bPtr,
  220.                                  short                     aLen,
  221.                                  short                     bLen)                                THREEWORDINLINE(0x3F3C, 0x000A, 0xA9ED);
  222.  
  223. EXTERN_API( short )
  224. IUMagIDString                    (const void *            aPtr,
  225.                                  const void *            bPtr,
  226.                                  short                     aLen,
  227.                                  short                     bLen)                                THREEWORDINLINE(0x3F3C, 0x000C, 0xA9ED);
  228.  
  229. EXTERN_API( short )
  230. IUCompString                    (ConstStr255Param         aStr,
  231.                                  ConstStr255Param         bStr);
  232.  
  233. EXTERN_API( short )
  234. IUEqualString                    (ConstStr255Param         aStr,
  235.                                  ConstStr255Param         bStr);
  236.  
  237. #if CGLUESUPPORTED
  238. #if OLDROUTINENAMES
  239. EXTERN_API_C( short )
  240. iucompstring                    (const char *            aStr,
  241.                                  const char *            bStr);
  242.  
  243. EXTERN_API_C( short )
  244. iuequalstring                    (const char *            aStr,
  245.                                  const char *            bStr);
  246.  
  247. #endif  /* OLDROUTINENAMES */
  248.  
  249. #endif  /* CGLUESUPPORTED */
  250.  
  251. EXTERN_API( short )
  252. RelString                        (ConstStr255Param         str1,
  253.                                  ConstStr255Param         str2,
  254.                                  Boolean                 caseSensitive,
  255.                                  Boolean                 diacSensitive);
  256.  
  257. EXTERN_API( Boolean )
  258. EqualString                        (ConstStr255Param         str1,
  259.                                  ConstStr255Param         str2,
  260.                                  Boolean                 caseSensitive,
  261.                                  Boolean                 diacSensitive);
  262.  
  263. #if CGLUESUPPORTED
  264. EXTERN_API_C( short )
  265. relstring                        (const char *            str1,
  266.                                  const char *            str2,
  267.                                  Boolean                 caseSensitive,
  268.                                  Boolean                 diacSensitive);
  269.  
  270. EXTERN_API_C( Boolean )
  271. equalstring                        (const char *            str1,
  272.                                  const char *            str2,
  273.                                  Boolean                 caseSensitive,
  274.                                  Boolean                 diacSensitive);
  275.  
  276. #endif  /* CGLUESUPPORTED */
  277.  
  278.  
  279. #if PRAGMA_STRUCT_ALIGN
  280.     #pragma options align=reset
  281. #elif PRAGMA_STRUCT_PACKPUSH
  282.     #pragma pack(pop)
  283. #elif PRAGMA_STRUCT_PACK
  284.     #pragma pack()
  285. #endif
  286.  
  287. #ifdef PRAGMA_IMPORT_OFF
  288. #pragma import off
  289. #elif PRAGMA_IMPORT
  290. #pragma import reset
  291. #endif
  292.  
  293. #ifdef __cplusplus
  294. }
  295. #endif
  296.  
  297. #endif /* __STRINGCOMPARE__ */
  298.  
  299.